// 画二叉树
// 回溯 每次都取一个数 循环 
function fullpermutate(str){
    var result=[];
    // 退出条件
    if(str.length>1){
        for(var m=0;m<str.length;m++){
            var left=str[m];// slice 左闭右开
            var rest=str.slice(0,m)+str.slice(m+1,str.length);// 获得除m以外的所有
            // console.log(left,rest,'////')
            var preResult=fullpermutate(rest);
            for(var i=0;i<preResult.length;i++){
                // console.log(preResult[i],'11111');
                var tmp=left+preResult[i];
                // console.log(tmp,'2222');
                result.push(tmp);
            }
        }
    }else if(str.length==1){// 退出条件
        result.push(str);
    }
    return result;
}

console.log(fullpermutate('abc'));